Nano-ordinateurs #5 p21 (1987)

MONITEUR HEXADECIMAL POUR SHARP PC-1500

Un moniteur en langage machine avait t publi dans le n 9 de la revue des Sharpentiers et les n 11 et 20 avaient analys le problme de son relogement. En voici une nouvelle version due  Jean-Pierre DUMONT.
Par rapport  loriginal, elle a le grand avantage dtre entirement relogeable et de plus elle tient en 427 octets au lieu de 599. Adoptez-la sans hsiter et oubliez lancienne.

UTILISATION DU PROGRAMME BASIC

Le programme basic ci-joint ne sert quune fois, pour crer le moniteur en langage machine. Cest celui-ci que vous sauvegarderez et que vous utiliserez par la suite.
1 - Rservez lespace mmoire ncessaire au moniteur (rappelez-vous quil occupe 427 octets). Par exemple, si vous rservez lespace en dbut de mmoire  la suite de la zone rserve, entrez NEW (PEEK &7863*256+197+427) en mode PRO.
2 - Tapez le programme basic sans rien y changer.
3- Lancez le programme par RUN. Puis entrez ladresse du dbut dimplantation du moniteur. Dans le cas cit en exemple, ce sera PEEK &7863*256+197.
Ne vous tonnez pas des dessins bizarres qui apparaitront ensuite sur lcran, ceci est li  lutilisation des instructions GPRINT et POINT.
Si tout est correct, OK saffichera au bout dune trentaine de secondes. Sauvegardez aussitt le moniteur sur cassette par CSAVE MMONITEUR;A,A+426 (la variable A contient ladresse du dbut dimplantation). Et c'est fini. Le moniteur est  votre disposition.
Vous pourrez le rimplanter, quand et o vous voudrez, par CLOAD MMONITEUR;NNNN , NNNN tant ladresse que vous aurez choisie pour le dbut de limplantation.
Sil y a une erreur, le message Erreur ligne N apparaitra  lcran : vrifiez alors la ligne de DATA no N, puis relancez le programme depuis le dbut par RUN.

MODE DEMPLOI DU MONITEUR

Lancement par CALL NNNN , NNNN tant ladresse du dbut dimplantation. Le titre MONITOR apparait  lcran.
Lecture et criture sont en hexadcimal. Une ligne dcran se compose de ladresse du premier octet visualis, de 8 octets successifs et dune somme de contrle (en hexa galement). Un pav clignote sur loctet en cours.

LECTURE : commande R > R &. Entrez ladresse (4 chiffres hexadcimaux). En cas derreur, appuyez sur MODE et recommencez.

LECTURE/ECRITURE : commande W -> W &. Entrez ladresse (4 chiffres hexadcimaux). En cas derreur, appuyez sur MODE et recommencez. Pour crire, utilisez le pav numrique et les signes / (= A), * (= B), -(= C), +(= D) , =(= E) , .(= F).
 
DEPLACEMENT DANS LA MEMOIRE:
Les 4 flches haut has droite gauche.

SORTIE : touche MODE pour revenir  MONITOR, touche SPACE pour quitter le programme MONITEUR".


------------------------------
MONITEUR HEXADECIMAL pour PC-15OO
(version J.P. DUMONT)

 1:DATA "F2BEECAEFD588E0F","3C204D6F6E69746F","72203E20202026FD",2657
 2:DATA "6A6464B50CCD9258","7B5A84FDA8BEE42C","FD2AB7578B09B752",3144
 3:DATA "BB05B72099139A1E","2EB503CD925A6OFD","588EA3B3085E6A93",2608
 4:DATA "0A51BEED4DB71F9B","51B70D99165E6491","1A5A76487B4A60BE",2544
 5:DATA "ED9551BEED952BB9","F81EA4FB11D9AE7B","B1F25A76550B550A",3259
 6:DATA "BEF7413hFD1646F9","034E7699071E5A60","456A0128F1B90FB7",2565
 7:DATA "0A8102B306B33051","A4880E4E819117B5","64F9030A5A8353F5",2415
 8:DATA "5A83550A487BB57F","1781075B80A57BB2","8E02597F0EBEECAE",2589
 9:DATA "687B6A60B504CD92","EF787505B502CD92","EF7875026E7A910C",2841
10:DATA "EF787503B502CD92","6AC0FDA8FD588E86","5A81FD2A8159B71F",3295
11:DATA "9BF2B70B8B3AB70C","8B0CB70B8B3AB70A","8B0888229E5E5F0l",2380
12:DATA "851659005A765508",570AB508FDCAE97B","847FBA5104538E04",2347
13:DATA "EB7B8AB06A68FDA8","BB0ZFD2ABB0B9EBE","5FFF93145F108E02",2946
14:DATA "59005A765508570A","6A0746B8039E3148","7B4AB44D019B4D5F",1822
15:DATA "0185025FFF4BB046","451A44F55A765528","572A4A64BEED9561",2476
16:DATA "4E7491089EFAFD88","BEEA2CFD588E062E","3D2B2D2A2F44A46A",2621
17:DATA "05F7890BB54022A7","7B858B15F98E1388","10B747830CB74193",2616
18:DATA "12B73A8304B73093","1AFBAE7B85FD0A44","44FD5E",2225
20:INPUT "427 oct-Adr.debut: ";A:B=A:GOTO 40
30:GOTO 20
40:FOR N=1TO 18:WAIT 0:S=0:FOR I=1TO 3:READ A$:GPRINT AS
50:FOR J=0TO LEN A$/2-1:X=POINT J,S=S+X:POKE B,X:B=B+1:NEXT J:NEXT I:READ X
60:WAIT :IF S=XNEXT N:BEEP 1:PRINT "O.K.":END
70:BEEP 2:PRINT "Erreur ligne";N:END

STATUS1 = 1398
------------------------------
Note: pour reference, voir scan du listing original.
